package cn.iocoder.yudao.module.erp.service.priwarehouseintegra;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.priwarehouseintegra.vo.PriWarehouseIntegraPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.priwarehouseintegra.vo.PriWarehouseIntegraSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.priwarehouseintegra.PriWarehouseIntegraDO;
import jakarta.validation.Valid;

/**
 * ERP 一级库整合单 Service 接口
 *
 * @author 芋道源码
 */
public interface PriWarehouseIntegraService {

    /**
     * 创建ERP 一级库整合单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createPriWarehouseIntegra(Long userId,@Valid PriWarehouseIntegraSaveReqVO createReqVO);

    /**
     * 生产采购单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createPurPurchaseOrder(@Valid PriWarehouseIntegraSaveReqVO createReqVO);

    /**
     * 更新ERP 一级库整合单
     *
     * @param updateReqVO 更新信息
     */
    void updatePriWarehouseIntegra(@Valid PriWarehouseIntegraSaveReqVO updateReqVO);

    /**
     * 院办审核
     *
     * @param updateReqVO 更新信息
     */
    void officeAudit(@Valid PriWarehouseIntegraSaveReqVO updateReqVO);

    /**
     * 删除ERP 一级库整合单
     *
     * @param id 编号
     */
    void deletePriWarehouseIntegra(Long id);

    /**
     * 获得ERP 一级库整合单
     *
     * @param id 编号
     * @return ERP 一级库整合单
     */
    PriWarehouseIntegraDO getPriWarehouseIntegra(Long id);

    /**
     * 获得ERP 一级库整合单分页
     *
     * @param pageReqVO 分页查询
     * @return ERP 一级库整合单分页
     */
    PageResult<PriWarehouseIntegraDO> getPriWarehouseIntegraPage(PriWarehouseIntegraPageReqVO pageReqVO);
    /**
     * 获得ERP 一级库整合单分页
     *
     * @param pageReqVO 分页查询
     * @return ERP 一级库整合单分页
     */
    PageResult<PriWarehouseIntegraDO> getPriWarehouseIntegraPage2(PriWarehouseIntegraPageReqVO pageReqVO);
    /**
     * 获得ERP 一级库整合单分页
     *
     * @param pageReqVO 分页查询
     * @return ERP 一级库整合单分页
     */
    PageResult<PriWarehouseIntegraDO> getPriWarehouseIntegraPage3(PriWarehouseIntegraPageReqVO pageReqVO);
    /**
     * 提交院办
     *
     */
    void submitOffice(String taskId);
}